// 在页面中执行复制操作的函数
async function copyToClipboard(text) {
  try {
    // 尝试使用现代Clipboard API
    await navigator.clipboard.writeText(text);
    return true;
  } catch (err) {
    console.warn('现代剪贴板API失败，尝试备用方法:', err);  // 改为console.warn
    
    // 回退到传统方法
    try {
      const textarea = document.createElement('textarea');
      textarea.value = text;
      textarea.style.position = 'fixed';
      textarea.style.opacity = '0';
      document.body.appendChild(textarea);
      textarea.select();
      
      // 使用document.execCommand作为最后手段
      const success = document.execCommand('copy');
      document.body.removeChild(textarea);
      return success;
    } catch (fallbackErr) {
      console.error('所有复制方法均失败:', fallbackErr);  // 保持为error
      return false;
    }
  }
}

// 显示状态的函数
function showStatus(success, message = '') {
  const color = success ? '#4CAF50' : '#f44336';
  
  // 更新扩展图标的徽章
  chrome.action.setBadgeBackgroundColor({ color });
  chrome.action.setBadgeText({ text: success ? '✓' : '×' });
  
  // 在控制台记录状态
  console.log(`${success ? '成功' : '失败'}: ${message || (success ? '已复制cookie' : '复制失败')}`);
  
  // 3秒后清除徽章
  setTimeout(() => {
    chrome.action.setBadgeText({ text: '' });
  }, 3000);
}

// 监听扩展图标点击事件
chrome.action.onClicked.addListener(async (tab) => {
  try {
    // 检查标签页URL是否有效
    if (!tab.url || !tab.url.startsWith('http')) {
      showStatus(false, '无效的URL或不支持的协议');
      return;
    }
    
    const url = new URL(tab.url);
    const domain = url.hostname;
    
    // 获取当前网站的所有cookie
    const cookies = await chrome.cookies.getAll({ domain });
    
    if (cookies.length === 0) {
      showStatus(false, '没有找到cookie');
      return;
    }
    
    // 格式化cookie为字符串
    const cookieStr = cookies
      .map(cookie => `${cookie.name}=${cookie.value}`)
      .join('; ');
    
    console.log(`找到 ${cookies.length} 个cookie:`, cookies);
    
    // 注入脚本到当前页面并执行复制操作
    try {
      const results = await chrome.scripting.executeScript({
        target: { tabId: tab.id },
        func: copyToClipboard,
        args: [cookieStr]
      });
      
      // 检查复制是否成功
      const success = results?.[0]?.result === true;
      showStatus(success, success ? `已复制${cookies.length}个cookie` : '复制操作失败');
      
      if (!success) {
        console.error('复制操作返回失败:', results);
      }
    } catch (err) {
      console.error('脚本注入失败:', err);
      showStatus(false, `脚本注入失败: ${err.message}`);
    }
  } catch (error) {
    console.error('处理过程中出错:', error);
    showStatus(false, `处理错误: ${error.message}`);
  }
});